Sensors of one type or another have been used to collect information about the physical environment for much of recorded history. For example, early thermostats for measuring temperature and scales for measuring weight date back hundreds of years. In the past, sensors were constructed to measure particular fundamental physical constants. Such sensors were therefore not configurable after fabrication. For example, the particular physical phenomenon to be measured as well as the measurement constant and the precision or range of the measurement were determined at the time of construction, and could not be modified without substantial changes, if feasible at all.
In fact, it is only recently that sensors have gained the ability to be configurable to a degree. In particular, the advent of Micro Electro Mechanical Systems (MEMS), which are manufactured using silicon semiconductor device fabrication technology, which typically include on-board physics and electronics (e.g., amplifiers), have contributed to the ability to configure or program a sensor in recent times. While, most pre-MEMS sensors are preconfigured to measure a single physical phenomenon, and to do so within a preconfigured range, MEMS technology has enabled a wider range of applications. By employing MEMS technology, the actual sensor output is a composite of the output of the MEMS part of the sensor plus the processing that operates according to predetermined constraints, typically programmed with software instructions. Thus, many MEMS sensors are capable of a range of different types or sensitivities of a measurement, even if controlling software is written to take advantage of only a small subset of the possible functionality of the sensor, such as deploying sensors for a particular, predetermined purpose.
Hence, conventional sensor systems do not provide a means to program or recalibrate sensors unless such is provided for at the time the software that utilizes the sensor output is written. Thus, even MEMS sensors of today are not configurable to the extent possible because regardless of the possible functionality of a sensor, once the sensor has been deployed in the field (is placed in situ), very little can be done to control the sensor or the output provided by the sensor. As such, even systems that do allow some degree of remote programming of sensors operate according to a point-to-point communications mechanism and are therefore not effective for programming a large number of sensors in a standard way, and typically such programming must be manually input by humans.
What is needed is a way to provide for real-time, in-situ programming of networked sensors in a way that supports single sensors and large sensor arrays as well as self-calibration/self-organization of the sensor(s).
The above-described deficiencies of sensors and related systems are merely intended to provide an overview of some of the problems of conventional systems and techniques, and are not intended to be exhaustive. Other problems with conventional systems and techniques, and corresponding benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.